Skip to main content

Poly vs mono repo

Case Study on Google (Monolith at scale)​

  • 1 lines of code and changed at 45k commits per day. (at 2015)
  • Multiple custom built tools to support this (you need to invest in your own custom tools to have a monolith on this proportion)
    • Piper - Custom Repository
    • CitC - Code Browser
    • Code Critique - Code Review
    • Bazel - Code Build
    • Automated Checks

Monolith Pros (as per Google)

  • Unified Versioning, one source of truth
    • No Merging issues
    • No artificial boundaries
    • No confusion on authoritative version of a file
    • Simplify greatly dependency management
  • Extensive code sharing and resuse
  • Simplified dependency management
    • No Diamond Dependency Problem
  • Atomic Changes
  • Large Scale Refactoring, Codebase modernization
  • Collaboration
  • Flexible Team Boundaries
  • Code Visibility and clear tree structure providing team namespacing